package com.yf.exam.modules.user.cert.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

import java.util.Date;

/**
 * 用户证书记录实体类
 */
@Data
@TableName("el_user_cert")
public class UserCert extends Model<UserCert> {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private String userId;

    /**
     * 考试ID
     */
    @TableField("exam_id")
    private String examId;

    /**
     * 证书模板ID
     */
    @TableField("id")
    private String certId;

    /**
     * 试卷ID
     */
    @TableField("paper_id")
    private String paperId;

    /**
     * 证书文件路径
     */
    @TableField("cert_url")
    private String certUrl;

    /**
     * 生成状态：0待生成，1生成中，2已生成，3生成失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 生成时间
     */
    @TableField("generate_time")
    private Date generateTime;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    // 状态常量
    public static final int STATUS_PENDING = 0;    // 待生成
    public static final int STATUS_GENERATING = 1; // 生成中
    public static final int STATUS_GENERATED = 2;  // 已生成
    public static final int STATUS_FAILED = 3;     // 生成失败
}